//
// Created by Snow on 2023/5/15.
//
//冒泡排序
#include"seqlist.cpp"
void BubbleSort(RecType R[],int n)
{
    int i,j;
    bool exchange;
    for(i=0;i<n-1;i++)
    {
        exchange=false;//一趟前exchange置为假
        for(j=n-1;j>i;j--)//归位R[i],循环n-i-1次
        {
            if(R[j].key<R[j-1].key)//相邻两个元素反序时
            {
                swap(R[j],R[j-1]);//将这两个元素交换
                exchange=true;//一旦有交换，exchange置为真
            }
        }
        if(!exchange)//本趟没有发生交换，中途结束算法
            return;
    }
}
int main()
{
    int n=10;
    RecType R[MAXL];
    KeyType a[]={0,1,7,2,5,4,3,6,8,9};
    CreateList(R,a,n);
    DispList(R,n);
    BubbleSort(R,n);
    DispList(R,n);
    return 1;
}